extends KinematicBody2D
#玩家死亡
signal player_died
#主人的各种行为
var actions=["巡逻","攻击","暂停","睡觉","上班","看电视","玩手机","听音乐","请灭蟑螂团队"]
#主人的当前行为 默认为巡逻
var current_action="暂停"
var action="right"
var col
export var speed=2
#每次攻击，减少的蟑螂的生命值
export var life_to_cut=10
#玩家生命值节点 progess组件
var player_life_node
#蟑螂节点
var player
func _ready():
	player_life_node=get_tree().current_scene.get_node("UI/LayerHud/Hud/life")
	pass # Replace with function body.


# Called every frame. 'delta' is the elapsed time since the previous frame.
# warning-ignore:unused_argument
func _process(delta):
	if current_action=="巡逻":
		#巡逻逻辑设计 先往右走到头 然后往左走到头 循环走路
		if action=="right":
			col=move_and_collide(Vector2(speed,0))
		if action=="left":
			col=move_and_collide(Vector2(-speed,0))
		if col:
			var col_obj=col.collider
			#print_debug(col_obj.name)
			#灶台
			if col_obj.name=="zaotai":
				action="left"
				print_debug("行为",action)
			#最左边的墙
			if col_obj.name=="wall_left":
				action="right"
				print_debug("行为",action)
	if current_action=="暂停":
		#什么也不做
		pass
		#攻击距离 未定义 你们觉得用远程攻击 还是近战武器来攻击蟑螂（玩家）
		#暂定攻击方式 1.杀虫剂（法术aoe） 2.拖鞋（物理） 3.陷阱（物理） 4.灭蟑螂焦耳（化学，单点式） 5.随机在食物里下毒（单点化学）
		#6.灭蟑螂蚊香（化学，扩散式，有持续时间，过了就失效） 7.天敌，高脚白蜘蛛（物理） 8.金坷垃（化学） 9.敌敌畏（化学）
		#10.浓硫酸（化学） 11.洗衣粉（化学） 12.浓盐酸（化学） 13.王水（化学） 14.煤气炸药（物理+化学） 15.枪？
		#太多了，暂时先定这么多，数值之类的以后调，我没专业学过数值策划，只能按照感觉来
		#为了做的更好，攻击方式以后肯定有删减，现在先尽可能列出来 想想看
		pass
	if current_action=="攻击":
		$attack_timer.start()
		set_process(false)
		pass
	if current_action=="请灭蟑螂团队":
		#伪代码
		#播放灭蟑螂团队剧情
		#播放完成后，他们开始布置，此时，你无法看见他们，因为白天是玩家（蟑螂）的睡觉和休息时间
		#到了晚上，你可以活动了，然后需要避免被他们的东西弄死
		
		pass
	pass


func _on_area_find_body_entered(body):
	if body.name=="kine":
		#蟑螂进入 改变为攻击状态
		current_action="攻击"
		print_debug("进入攻击状态")
		#获得蟑螂节点
		player=body
		$attack_text.bbcode_text="[rainbow]攻击[/rainbow]"
		$attack_text.show()
		#print_debug(player)
		pass
	pass # Replace with function body.


func _on_area_find_body_exited(body):
	if body.name=="kine":
		$attack_timer.stop()
		#蟑螂退出检测范围 改变为攻击状态
		current_action="巡逻"
		action="right"
		print_debug("退出攻击状态，并更新action")
		print_debug(current_action)
		$attack_text.bbcode_text="[rainbow]巡逻[/rainbow]"
		set_process(true)
	pass # Replace with function body.


func _on_attack_timer_timeout():
	print("2s到，攻击！")
	#计算生命值
	Global.player_life-=life_to_cut
	print_debug("全局玩家生命值,",Global.player_life)
	#将全局蟑螂生命值同步到UI界面，UI数据更新
	player_life_node.value=Global.player_life
	if player_life_node.value<=0:
		print_debug("蟑螂死亡")
		$attack_timer.stop()
		#消除蟑螂
		player.queue_free()
		Global.gameState="玩家死亡"
		current_action="巡逻"
		action="right"
		set_process(true)
		if Global.gameState=="玩家死亡":
			emit_signal("player_died")
			pass
	pass # Replace with function body.

#教学过程，不能乱动
func _on_chufang_in_teach():
	current_action="暂停"
	pass # Replace with function body.

#玩家拒绝了新手教程，直接进入实战，主人开始移动和攻击
func _on_newer_tip_canceled_teach():
	print_debug("接收到no信号，开始实战")
	current_action="巡逻"
	action="right"
	pass # Replace with function body.
